8037f010: 27 bd ff d8  ADDIU sp, sp, 0xffffffd8 (-40)
8037f014: af bf 00 14  SW ra, sp, 0x14 (20)

8037f018: 3c 0e 80 39  LUI t6, 0x8039 (32825)
8037f01c: 8d ce be 28  LW t6, t6, 0xffffbe28 (-16856)
8037f020: 91 cf 00 02  LBU t7, t6, 0x2 (2)
8037f024: a3 af 00 27  SB t7, sp, 0x27 (39)                  [sp + 0x27] = *(*(0x8038be28) + 2)

8037f028: 3c 18 80 39  LUI t8, 0x8039 (32825)
8037f02c: 8f 18 be 28  LW t8, t8, 0xffffbe28 (-16856)
8037f030: 8f 19 00 04  LW t9, t8, 0x4 (4)
8037f034: af b9 00 20  SW t9, sp, 0x20 (32)                  [sp + 0x20] = *(*(0x8038be28) + 4)

8037f038: 93 a8 00 27  LBU t0, sp, 0x27 (39)
8037f03c: 29 01 00 08  SLTI at, t0, 0x8 (8)
8037f040: 10 20 00 2f  BEQ r0, at, 0x8037f100 (pc + 0xbc)    if ([sp + 0x27] >= 8) goto 0x8037f100
8037f044: 00 00 00 00  NOP

8037f048: 3c 04 80 39  LUI a0, 0x8039 (32825)
8037f04c: 8c 84 b8 a0  LW a0, a0, 0xffffb8a0 (-18272)
8037f050: 0c 0d f8 2d  JAL 0x8037e0b4 (-2143821644)          [sp + 0x1c] = 0x8037e0b4(*(0x8038b8a0), [sp + 0x20])
8037f054: 8f a5 00 20  LW a1, sp, 0x20 (32)
8037f058: af a2 00 1c  SW v0, sp, 0x1c (28)

8037f05c: 8f a9 00 1c  LW t1, sp, 0x1c (28)
8037f060: 8d 2a 00 20  LW t2, t1, 0x20 (32)
8037f064: 8d 4b 00 00  LW t3, t2, 0x0 (0)
8037f068: af ab 00 18  SW t3, sp, 0x18 (24)                  [sp + 0x18] = *(*([sp + 0x1c] + 0x20))

8037f06c: 93 ac 00 27  LBU t4, sp, 0x27 (39)
8037f070: 3c 01 80 39  LUI at, 0x8039 (32825)
8037f074: a4 2c b8 ac  SH t4, at, 0xffffb8ac (-18260)        *(0x8038b8ac) = [sp + 0x27]

8037f078: 93 ad 00 27  LBU t5, sp, 0x27 (39)
8037f07c: 8f ae 00 1c  LW t6, sp, 0x1c (28)
8037f080: a1 cd 00 14  SB t5, t6, 0x14 (20)                  *([sp + 0x1c] + 0x14) = [sp + 0x27]

8037f084: 93 b9 00 27  LBU t9, sp, 0x27 (39)
8037f088: 3c 18 80 33  LUI t8, 0x8033 (32819)
8037f08c: 8f 18 dd c8  LW t8, t8, 0xffffddc8 (-8760)
8037f090: 00 19 41 00  SLL t0, t9, 0x4 (4)
8037f094: 8f af 00 1c  LW t7, sp, 0x1c (28)
8037f098: 01 19 40 23  SUBU t0, t0, t9
8037f09c: 00 08 40 80  SLL t0, t0, 0x2 (2)
8037f0a0: 03 08 48 21  ADDU t1, t8, t0
8037f0a4: ad 2f 00 04  SW t7, t1, 0x4 (4)                    *(*(0x8032ddc8) + [sp + 0x27] * 60 + 0x4) = [sp + 0x1c]

8037f0a8: 8f aa 00 18  LW t2, sp, 0x18 (24)
8037f0ac: 11 40 00 0c  BEQ r0, t2, 0x8037f0e0 (pc + 0x30)    if (![sp + 0x18]) goto 0x8037f0e0
8037f0b0: 00 00 00 00  NOP

8037f0b4: 93 ae 00 27  LBU t6, sp, 0x27 (39)
8037f0b8: 8f ab 00 18  LW t3, sp, 0x18 (24)
8037f0bc: 3c 0d 80 33  LUI t5, 0x8033 (32819)
8037f0c0: 8d ad dd c8  LW t5, t5, 0xffffddc8 (-8760)
8037f0c4: 00 0e c9 00  SLL t9, t6, 0x4 (4)
8037f0c8: 03 2e c8 23  SUBU t9, t9, t6
8037f0cc: 8d 6c 00 18  LW t4, t3, 0x18 (24)
8037f0d0: 00 19 c8 80  SLL t9, t9, 0x2 (2)
8037f0d4: 01 b9 c0 21  ADDU t8, t5, t9
8037f0d8: 10 00 00 09  BEQ r0, r0, 0x8037f100 (pc + 0x24)
8037f0dc: af 0c 00 24  SW t4, t8, 0x24 (36)                  *(*(0x8032ddc8) + [sp + 0x27] * 60 + 0x24) = *([sp + 0x18] + 0x18)
                                                             goto 0x8037f100

8037f0e0: 93 af 00 27  LBU t7, sp, 0x27 (39)
8037f0e4: 3c 08 80 33  LUI t0, 0x8033 (32819)
8037f0e8: 8d 08 dd c8  LW t0, t0, 0xffffddc8 (-8760)
8037f0ec: 00 0f 49 00  SLL t1, t7, 0x4 (4)
8037f0f0: 01 2f 48 23  SUBU t1, t1, t7
8037f0f4: 00 09 48 80  SLL t1, t1, 0x2 (2)
8037f0f8: 01 09 50 21  ADDU t2, t0, t1
8037f0fc: ad 40 00 24  SW r0, t2, 0x24 (36)                  *(*(0x8032ddc8) + [sp + 0x27] * 60 + 0x24) = 0

8037f100: 3c 0b 80 39  LUI t3, 0x8039 (32825)
8037f104: 8d 6b be 28  LW t3, t3, 0xffffbe28 (-16856)
8037f108: 3c 01 80 39  LUI at, 0x8039 (32825)
8037f10c: 91 6e 00 01  LBU t6, t3, 0x1 (1)
8037f110: 01 6e 68 21  ADDU t5, t3, t6
8037f114: ac 2d be 28  SW t5, at, 0xffffbe28 (-16856)       /*(adv wp)*/

8037f118: 10 00 00 01  BEQ r0, r0, 0x8037f120 (pc + 0x4)
8037f11c: 00 00 00 00  NOP

8037f120: 8f bf 00 14  LW ra, sp, 0x14 (20)
8037f124: 27 bd 00 28  ADDIU sp, sp, 0x28 (40)
8037f128: 03 e0 00 08  JR ra
8037f12c: 00 00 00 00  NOP



0x8037f010()
{

    char area;     /*[sp + 0x27]*/
    long segptr;   /*[sp + 0x20]*/
    void *unk1;    /*[sp + 0x1c]*/
    void *unk2;    /*[sp + 0x18]*/


    area = *(*(0x8038be28) + 2)
    segptr = *(*(0x8038be28) + 4)

    if (area < 8) {
        unk1 = 0x8037e0b4(*(0x8038b8a0), segptr)
        unk2 = *(unk1->off0x20)
        *(0x8038b8ac) = area
        unk1->off0x14 = area
        *(*(0x8032ddc8) + area * 60 + 0x4) = unk1

        if (unk2) {
            *(*(0x8032ddc8) + area * 60 + 0x24) = unk2->off0x18
        } else {
            *(*(0x8032ddc8) + area * 60 + 0x24) = 0
        }
    }

    /*(adv wp)*/
}

0x8037f010()
{

    char area;     /*[sp + 0x27]*/
    long segptr;   /*[sp + 0x20]*/
    void *unk1;    /*[sp + 0x1c]*/
    void *unk2;    /*[sp + 0x18]*/


    area = *(*(0x8038be28) + 2)
    segptr = *(*(0x8038be28) + 4)

    if (area < 8) {
        unk1 = 0x8037e0b4(*(0x8038b8a0), segptr)
        unk2 = *(unk1->off0x20)
        *(0x8038b8ac) = area
        unk1->off0x14 = area
        *(*(0x8032ddc8) + area * 60 + 0x4) = unk1

        if (unk2) {
            *(*(0x8032ddc8) + area * 60 + 0x24) = unk2->off0x18
        } else {
            *(*(0x8032ddc8) + area * 60 + 0x24) = 0
        }
    }

    /*(adv wp)*/
}
